﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WordNet.Core.ElementContracts;

namespace WordNet.Core.Relations
{
    // contract for tracing semantic pointers and hierarchies
    public interface ISemanticRelations
    {
        ISenseNode FindRelation(IWordID id, Pointer pointer);
        ISenseNode FindRelation(ISynset synset, Pointer pointer);
        ISenseNode FindEntailment(IWordID id);
        Dictionary<Pointer,ISenseNode> FindHolonym(IWordID id);
        Dictionary<Pointer,ISenseNode> FindHypernym(IWordID id);
        Dictionary<Pointer,ISenseNode> FindHyponym(IWordID id);
        Dictionary<Pointer,ISenseNode> FindMeronym(IWordID id);
        ISenseNode FindSimilarTo(IWordID id);
        ISenseNode FindAttribute(IWordID id);
        ISenseNode FindCause(IWordID id);
    }
}
